home *** CD-ROM | disk | FTP | other *** search
- Upgrading TNOS to release 2.01
- http://www.lantz.com/Update2.01.html
-
-
- TNOS 2.01 will be the next release of TNOS, to be released sometime
- before the formation of the United Federation of Planets. Hopefully,
- this list of changes will give you an idea of the scope of work that
- has occurred between versions. Of course, it may be faster just to
- re-read the docs when the next version is released.
-
- This document is divided into:
-
-
- * Bug Fixes
- * Improvements
- * Minor Changes
- * Known Bugs
- * To-Do List
-
- ------------------------------------------------------------
- Bug Fixes:
-
- The following bugs have been squashed.
-
-
- * Cleaned up a minor buglet and a memory leak in forwarding code
-
- * Clean up mods from Paul for the APOP code - got in too late for 2.00
-
- * Creation of 'BID' from PINE MessageIDs not unique enough - fixed
-
- * Above included in patchkit 1
-
- * FBB Compressed forwarding wasn't closing a file when receiving msgs
-
- This resulted in one open file for each message :-(
-
- * FBB Compressed forwarding wasn't removing a tempfile when sending msgs
-
- If you used FBB compression and SENT a message, then it ALSO was leaving
- a tempfile hanging around.
-
- * FBB Compressed forwarding crashes under certain conditions :-(
-
- Also, in some cases (I won't get into the long involved description), you
- would get a glorious crash after sucessfully sending an FBB compressed
- message.
-
- * The fix to prevent AXListeners for IP callsigns broke support for ROSE
- So, that fix was removed and a better one took it's place......
-
- * Fixed a *VERY SELDOM* bug in FBB forwarding
-
- This would occur ONLY if you had two machines sending the same messages
- at the same time (yep! I'm REALLY beating on this stuff ;-). If the initial
- bid check (before sending the 'FS' command passes, and then when in dosend()
- it failed (just came in from another BBS in that brief time), then it would
- send out a 'NO - Already have ....' message, causing a protocol error on
- the remote end. Now, if the bid fails in dosend() (after passing earlier),
- we assume that it came in since then, and silently drop the copy in the
- bit-bucket.
-
- * Also another infrequent occurance which COULD lose messages
-
- This buglet is in FBB, too, but we can't do anything about that ;-)
-
- *IF* garbage comes from a receiving FBB-style PBBS, instead of a forward
- negotiations ('FA', 'FB', 'FF', or 'FQ'), then FBB (and TNOS 2.00) would
- treat the reception of data (without it's analysis) as an indication that
- the messages sent were received correctly, and would remove them from the
- queue, and delete them, if personal messages. While this is very rare, we
- SAW a case where the 'NO - Already have...' bug was sent, and FBB marked
- the messages as received okay. After looking, the TNOS code ALSO was not
- checking for a valid 'F' command. Now this extra protection is added.
-
- * A rare one with Expiry and new message arrival in SMTP
-
- This ONLY occurred when EXPIRY was happening and a message came in while
- the EXPIRY process was *between* areas. A very brief time, but it did
- happen to Mike TWICE in a couple of days (he must not live right ;)
- Fixed now.
-
- * Discovered that part of the White Pages support never got finished
-
- Once a BBS got entered into the wpagebbs file, if changes were made, they
- never got updated. The support for the wpages file was fine, though.
-
- * Fixed the display of the 'mbox motdalways' command
-
- While this was a boolean type command, it was being processed as a numeric
- command, making the display (and input) numeric rather than [on|off].
-
- * Fix to the POP3 Client code. Sometimes got out of sync with the server
-
- This was one that slipped through the cracks with the APOP additions.
-
- * A minor fix in FBB Forwarding code, if a temp file error is found
-
- * A workaround for a missing attribute in MSYS BBSs SIDs
-
- If a PBBS supports FBB-style forwarding, it supports MIDs on personal
- messages. Any BBS that supports MIDs is SUPPOSE to advertise it with a 'M'
- in their SID. MSYS does NOT. So, we now assume the 'M' when we see the 'F',
- whether it is there or not. Not our problem, but it's fixed.
-
- * Fixed a minor display problem with RDATE
-
- * Fixed a bug which seg faulted if BBS 'KS' command had no parameters
-
- * Workarounds for older GCC's in compiling STATS files
-
- * Another fix for PINE-generated messages and bid checking
-
- Since the purpose of bidchecking in the SMTP code is to prevent PBBS dups,
- this needed mod, simply tells the SMTP code that a bid check is not needed
- if it came from a PINE or Chameleon mailer. This SHOULD finally stop the
- occasional bounced PINE messages.
-
- * Applied RXECHO patch for AXIP by John Woolner/VK1ZAO
-
- * Last (hopefully) memory leak with FBBCMP plugged
-
- If you are using FBB compression, and you have NO messages outgoing, you
- forfit 20K of memory! Not a big concern on Unix, but BIG TROUBLES for DOS!
- Easy fix, though.............
-
- * Fix for crash if typo in forward.bbs for interface name
-
- * Fixed bug with 'ax25 bct' being used for all interfaces
-
- The 'ifconfig iface ax25 bct' was not being used for the regular, timer
- generated beacons. This is now fixed.
-
- * Fixed a buglet in the routine that determines if an area is public
-
- This one came in with 2.00, and would SOMETIMES yield the proper result, and
- sometimes not. This would result in some public messages being deleted
- after being forwarded (if they originated outside of xNOS and had no
- 'X-BBS-Msg-Type:" line), and in some cases messages being unexpectedly
- held.
-
- * Fixed a buglet in the Unix session manager code, dealing with options
-
- This is one that was inherited from JNOS/Linux, and found thanks to
- Bob Smith <bob@snuffy.penfield.ny.us> (an alias if I ever heard one ;-)
-
- * Fixed a buglet with the BBS '!' command modifier
-
- The skipping of lines beginning with '-' in the areas (and areas.sys) file
- (for historical compatibility) was not being handled correctly, causing
- these lines to be analyzed as area names.
-
- * Fixed a long-standing occasional bug with mail area locking
-
- * Found and fixed a few accesses to invalid memory
-
- * Killed Conference Bridge '/who' display buglets
-
- Actually surprising it worked ;-)
-
- * Fixed a small buglet in FBB-style forwarding in area handling
-
- * Fixed a small buglet that didn't delete unused sockets in ttylink
-
- If the TNOS station had 'attend off', then each attempt would leave a
- lingering dead socket. Depending on system usage and number of sockets
- selected, this could eventually make it so that there were NO available
- sockets.
-
- * Fix to prevent crashes if attempting to view 'hostname' when not set
-
- Thanks to Alan B. Clegg <abc@gateway.com> for this one.
-
- * Fixed a BBS security/Domain translate bug......
-
- Jack discovered the answer to the problems he was having. It seems that if
- 'dom trans' is ON, the security assignments did not sense ampr addresses
- properly.
-
- * Small fix for mailers that like to give leading spaces on email names
-
- * Fix for Chameleon mailers and BIDs
-
- * Fixed bug where BBS and RLOGIN pings left a socket open till session ended
-
- * Fixed a filename buglet with BBS message delegation.
-
- * Fixed some NNTP buglets
-
- * Fixed a subtile bug with 'tcp clean'
-
- This only cleaned out the first FIN_WAIT2.
-
- * Fixed a buglet that would place redundant WP update records in update.wp
-
- * Above included in patchkit 3
-
- * Added fix (from nos-bbs) for FBB Yapp receiving
-
- This makes a 0 packet length into a length of 256, as per FBB spec.
-
- * A few assorted sun-related changes/fixes
-
- * DNS Server bug imported from nos-bbs
-
- * Fixed a quirk that passed a blank command in BBS sysop mode back to the BBS
-
- * Fix for properly leaving off the users' root dir in ftpserver with PWD command
-
- * Assorted FTPserver fixes for parsing the ftpusers file
-
- * Flow control fix for non-Linux Unixes (eliminated overruns)
-
- * Simple fix to RFC-822 header parsing to allow tab following colon
-
- Should also make whitespace optional.
-
- * Fixed problem with case significance in parsing alias file
-
-
- ------------------------------------------------------------
- Improvements:
-
- The following optimizations and improvements have occurred.
-
-
- * Added a 'smtp notify [on | off] command
-
- This toggles whether or not you get a 'New mail for .....' message for
- each incoming message.
-
- * Changed the WPAGES lookup routines to ALSO look in the wp*.new files
-
- The wpages and wpagebbs files are SORTED for rapid access, and all new
- entries are placed in wpages.new and wpagebbs.new, which is UNSORTED. These
- *.new files are added to the base file, re-sorted, and expired when the
- bid timer expires (or you 'bid kick'). The *.new file are NOW looked at
- (sequentially, of course) for expansion and lookup. Since the SORTED files
- will give faster, more responsive access, it is suggested that you set
- your 'wpage timer' to a value that will help insure SORTED responses.
-
- * Added support for a WP Client, which generates WP Updates
-
- This added the 'wpage client [on|off]', 'wpage destinations [bbscall]' and
- 'wpage update [#hours| now]' commands. If the client is on, then any
- activity that should be reported to the PBBS network via WP Updates is
- added to a spool/update.wp file, which is sent to all the PBBSs listed in
- the 'wpage destinations' (1 message per BBS to 'WP@bbscall') when the
- 'wpage update' timer expires or gets 'kicked' with a 'wpages update now'
- command.
-
- * Added support for a WP Server, which accepts and processes WP Updates
-
- This added the 'wpage server [on|off]' command and associated code.
-
- * Added an '/include' command to the BBS message mini-editor
-
- Along with this, the output of the '/original' command was changed to
- show the message line numbers. The syntax is '/i xxx [yyy]', where 'xxx' is
- the first line number you want included (from the '/o' output), and 'yyy'
- is the last line number (or include to rest of file, if 'yyy' is omitted).
- This command (like '/o') only works with the 'SR' (or 'reply') command.
- The included lines are prepended with '> '.
-
- * Added code for temporary white pages additions
-
- This addon is similar to how FBB handles White Pages. When a non-authorative
- WP user entry comes in (from any source), a temporary entry is created for a
- user. Non-authoritative entries are ones that are 'guessed' from the traffic
- flow, but were not directly entered by the user (or a sysop) for the
- purposes of White Pages update.
-
- The 'wpages temporaryage xxx' command sets the age of a temporary entry,
- which defaults to 30 days. When an entry has remained in the wpage.tmp file
- for this long, the master wpages file is updated with this temporary info.
- This prevents the master wpages info from being incorrectly updated simply
- because a user sends a message from a BBS other than their regular HOME BBS.
-
- * Better handling of AUTO/LOCAL ax25 routes
-
- Current code takes any 'AUTO' route given to it (by a BBS gateway, a
- Command Session 'connect/split' command, or a forwarding connect command)
- and *if* there was a LOCAL (manually entered) route, that route disappears,
- and is replaced by the AUTO one. This AUTO route disappears when that
- connection is severed, leaving (now) *NO* route.
-
- Now, if there is a LOCAL route (entered by the sysop, with a 'ax route add'
- command), then any other AUTO routes can be specified *BUT* they are
- effectively ignored. A LOCAL route will NOT be overwritten by an AUTO
- route.
-
- * FINALLY found an easy way to by-pass LZW for local-to-local smtp sessions
-
- Until I can come up with something better, this at least cuts down the CPU,
- memory, and time consumption of LZW for internal mail processing in the
- SMTP client<->SMTP server.
-
- * Optimized the memory allocation for FBB Compression under DOS
-
- Original way allocated ~20K when a FBB-style compressed forwarding session
- began, and didn't release this memory until the session was complete, even
- though it was only used at the few instants that encoding/decoding was
- actually being done. While this works fine with Unix and under DOS if the
- TNOS station is an station with only one or so stations that it forwards
- with, this CLEARLY has problems for heavily used TNOS/DOS stations. Under
- these rules, to compress forward to 5 PBBSs, takes a minimum of 100K of
- available memory.
-
- Now, the memory is allocated JUST before the encode/decode functions are
- called, and freed immediately afterward. This buys a LOT more memory
- efficiency. But, not stopping there, I changed the memory allocation
- to call functions that WAIT if the memory isn't immediately available. This
- will allow MANY more forwarding sessions to co-exist. When it requires the
- 20K of memory, if it is NOT available at the time, that process will sleep,
- and be awoke when another PBBS forwarding process frees the memory IT was
- using.
-
- These two changes SHOULD make TNOS's FBB Compression support much more
- "world-class".....
-
- * Added a new forward command to queue up messages from an area
-
- The 'forward queue <bbs> <all | area>' command allows you to
- add to the queue of a bbs (defined in the forward.bbs file), all of the
- messages in a particular area (or all areas) defined for that bbs. This is
- good when adding a new bbs that you wish to send the entire 'backlog' of
- messages to, in order to catch them up. All non-deleted messages are added
- to the queue. The actual message headers are NOT analyzed, so it COULD
- try to send to a bbs that NORMALLY it would have 'seen' as already having
- the message. The receiving BBS (in this case) will end up rejecting the
- messages that it already has. While this is not optimum, it serves the
- desired purpose, with little code, and the lack of optimization shouldn't
- matter, since this SHOULDN'T be a commonly used feature.
-
- * Added code to FBB-style forwarding to defer messages already incoming
-
- This code does one final check before telling the remote PBBS to send the
- message, and looks to see if there is another FBB-style forwarding session
- going on that has *already* started accepting this message. If so, the
- message will be deferred from this BBS, waiting to a later time, when either
- the message DID make it through successfully, or if not, it will be tried
- again.
-
- * Added needed conditional code for compiling on Sun3
-
- The primary 'fix' needed for this platform was a workaround for the old
- Sun compiler, which returns from sprint() the POINTER to the
- buffer that the data was placed into, rather than the number of characters
- placed there. There are now SPRINTF and VSPRINTF macros, used in the few
- occasions where sprintf() is assumed to return the count. All other changes
- are in '#if sun' conditionals.
-
- * Added code to make FBB-style forwarded comply to subchannel assignments
-
- While this required a LOT of code to be rewritten, the basic change is that
- now incoming FBB-style forwarding sessions honor the subchannel assignments.
-
- What this means is that if a BBS is defined to have a subchannel restriction:
-
-
- * Any incoming forwarding session will be allowed to SEND
- incoming messages even if there is no available subchannel slot.
-
- * When incoming forwarding sessions turn around the data flow
- to receive from us, we will ONLY send if either we have already been
- granted a subchannel slot, or if there is one currently available.
-
- * Outgoing forwarding will only occur if there is a subchannel slot
- available.
-
- * Any BBSs that cannot receive a subchannel slot are deferred.
-
- * If any outgoing session is deferred due to the lack of an available
- subchannel slot, the forwarding process will be 'kicked' after each
- BBS has completed processing, to allow deferred sessions to be
- processed at the earliest possible time.
-
- * If an FBB-style process initially cannot receive a subchannel slot,
- it is attempted each time forwarding control is passed back to it. If
- later in the forwarding session a slot becomes available, it will be
- granted to that existing process.
-
-
- These rules, of course, do NOT apply if the BBS does NOT have a subchannel
- assignment. Using these, you can easily restrict the number of outgoing
- PBBS forwarding sessions for better utilization of limited bandwidth.
-
- * Added a new mbscripthook for email addresses too vague
-
- This MIGHT help with the age-old problem of users sending to "ALL@USA"!
- This hook gets called for each email message that is not sent by a SYSOP
- or via PBBS forwarding. It is passed the original address being mailed to.
- The script hookfile (spool/cmds/vague.sys) can then look at the address,
- and depending on criteria that YOU set, can warn the user that the address
- to too vague. On my system, sending to "all@*" gets:
-
- *** The email address you've given to FAR too vague! Very few (if any) will
- *** read it addressed as it is currently. Suggest you abort this message
- *** (with '/abort'), and re-enter it with a more descriptive address!
-
- Doing it in this manner provides the most versatility, allowing each
- SYSOP to determine which addressing he/she wishes to 'preach' at the user
- about. It also has the benefit of not needing to 'rewrite' these to a
- special area for garbage disposal, unless you WISH to. You could always
- rewrite (in this example) "all@*" to an area named 'trash', and tell the
- user in the hookfile that this message, as addressed, will not be accepted.
- The choice is yours, but this will give us a tool to help in educating the
- average user.
-
- * Added the 'state' of BBS users to the Conference '/who' display
-
- Required a bit of rewriting to avoid 'code-bloat' ;-)
-
- * Support for ELF binaries added
-
- In actuality, the change was EXTREMELY minor, but it took a while to find.
- And while I'd like to take credit for it, the idea came from Bob Smith
- <bob@snuffy.penfield.ny.us> and his porting of TNOS to the Sun3. He
- found that the stacksizes needed adjustment in order to get the Sun up and
- running. Once he pinned it all down and submitted the diff, I got to thinking
- that MAYBE the stacksize COULD be marginal, and this COULD account for the
- occasional "how did that happen" crashes we've seen. So I applied his
- patch for large stacksizes on Unix.
-
- Then I got to thinking that this COULD account for the screwy things I'd
- seen trying to get ELF binaries to run. So, one compile later, we have ELF
- working. Thanks for the idea, Bob!
-
- * Added diffs for compiling on BSDI
-
- * Now 'certified' for use with GCC 2.7.0
-
- There are about 1100 warnings of unused parameters and 75 warnings of
- comparisons between signed and unsigned variables, but these are merely
- annoying, and not an indication of a problem. The unused parameters
- will be handled with the new 'OPTIONAL' macro. Soon will get around to
- patching all these to be 2.7.0-happy! ;-)
-
- * All unused parameters warning fixed for GCC 2.7.0
-
- * All comparison warnings fixed for GCC 2.7.0
-
- * Patches from Paul to prevent using a less efficient MX record
-
- This keeps track of MX's to the local host, and prevents using an MX of
- greater value, if one of a lesser value is for 'us'.
-
- * Patch from Bruce Tenison for having a group subscription welcome file
-
- When a member subscribes to a defined 'group' using the Reqsvr, a check is
- made to see if there is a 'groupname.hlp' file in the spool/help directory.
- If there is a file for that particular group, this is sent to the user by
- the Reqsvr.
-
- * Added a catalog file for less commonly used strings
-
- Like the Unix catalog files, this is a place for strings to be looked
- up, instead of having the strings in memory as part of the executable.
- While MSDOS will gain from the memory savings, all versions will gain,
- in that language localizations can (at least partially) be done using this.
- This feature can be disabled with the config.h file and the 'CATALOG' flag.
-
- * Stricter callsign checking option available
-
- The 'STRICT_CALL' flag in config.h will reject any logins from non-callsigns
- and will not try to PBBS forward any messages from non-callsigns. This
- option will be OFF in official exe's to avoid confusion. This one was
- contributed by Mat.
-
- * Added ftpusers permission to allow denying use of '*** linked to'
-
- This security hole had already been 'patched' in JNOS, so just took that
- patch. The permission value is different, though:
-
- # no_linkedto 262144 0x00040000 (No '*** LINKED TO' allowed)
-
- * Added a 'mbox nosubjbell' command
-
- This command (if set to on), will strip out any bell character entered as
- part of a BBS message's subject line. Many (including myself) get annoyed
- at having listings 'beep' at them.
-
-
- ------------------------------------------------------------
- Minor Changes:
-
- The following minor changes have occurred.
-
-
- * Modifications made for clean compiles on Borland C 3.1
-
- * Above included in patchkit 1
-
- * Placed checks in BBS login to prevent usernames with spaces
-
- For whatever the reason, I've noticed users logged in from time to time
- with something like this "c username" as the username. Obviously someone
- no paying close attention to what they were doing. Now TNOS will inform
- them that no spaces are allowed, and make them try again.
-
- * A small optimization in the changearea() function
-
- If you call changearea() now to change to the SAME area, then it is
- optimized to NOT close the area and re-open the same one.
-
- * Changed the 'mbox wpages [on|off]' to 'wpages support [on|off]'
-
- Just common sense ;-) *** CHANGE THOSE CONFIG FILES ***
-
- * Added the date to the statline display
-
- * Optimized the stats code, to reduce redundant code - smaller footprint
-
- * Unix Makefile changes for ease of customization
-
- Made a 'LOCKDIR' definition to define the directory where your lock files
- are found, and use NOSDIR within buildctl and ctlcheck, instead of hard-coded
- paths.
-
- * Changed the algorithm used to calculate the stats averages
-
- Previously the average included the partial day you were on for the averages
- on the 'general' sub-option. Since all of the other displays are based on
- NOT including the current, partial day, I changed the averages to subtract
- out the data for the current day before averaging. The averages are also
- now rounded up, instead of down.
-
- * TNOS/Linux version strings changed to TNOS/Unix
-
- (makefile.lnx renamed to makefile.unx)
-
- * Readme file updated with BSD/OS notes
-
- * Directory structure at ftp.lantz.com (and the mirror) changed
-
- The 'linux' directory will be renamed 'unix' starting with 2.01.
-
- * Added a 'security encode' BBS command
-
- This (available only to sysops) just extends the existing security command
- by looking to see if there is a parameter given, and if it starts with 'e'.
-
- * Minor internal changes to the REQSVR code
-
- * Above included in patchkit 3
-
- * A few misc cleanups
-
- * Added a prompt to the 'stats clear' command
-
- After twice accidently clearing stats during testing, I figured this *might*
- be needed ;-) You can bypass the prompt with 'stats clear yes'.
-
- * In BBS, when deleting a held message, hold state is now cleared
-
- * If GCC, added GCC version to the Command Session 'status' command
-
- * Added an optional site-specific makefile file extension
-
- The Makefile for Unix now includes code to include a 'make.inc' file, if
- it exists. Everyone is encouraged to use the stock, unmodified Makefile.unx
- and place any OS or site-specific changes in the make.inc file.
-
- * FBB forwarding will not defer zero length messages
-
-
- ------------------------------------------------------------
- Known Bugs:
-
- The following are known bugs that are being worked on during the development
- of release 2.00. These may or may not be fixed in release 2.01.
-
-
- * Domain cached MX records (dummy ones) added and not removed
-
- Seems if you have 'domain usemx' on and it queries for a MX that is NOT
- found, that a dummy record gets added to the cache that NEVER expires,
- though there is an expiration time in it.
-
- * ? CNAMEs seems to need to be fully qualified? Bug?
-
- * Forward file locking needed
-
- If a record gets added into a *.fwd file when a forwarding session is
- concluding, sometimes the new record gets missed, and the *.fwd file
- gets deleted. Rare, but needs to be addressed.
-
- * Sending mail to the proxy server, doesn't seem to work properly
-
- * Displaying parameter strings with a '\r' needs adjustment
-
- If you define a parameter string (like 'ax25 bctext') to be multi-line
- strings with a '\r', the output to the screen may not be what you expect.
-
- * None other at this time.... ;-)
-
-
-
-
- ------------------------------------------------------------
- To-Do List:
-
- The following are things on my 'to-do' list that may eventually
- be done, but not necessarily by the next release.
-
-
- * Investigate incorporating into TNOS a userfs extension
-
- This would allow *any* Linux (and possibly other Unix) program to open a
- file and access certain TNOS features. For instance a terminal program like
- minicom could open a device:
-
- /tnos/connect/lan/k0zxf/ko4ks-1/813044
-
- and do the equivalent to 'connect lan k0zxf ko4ks-1 813044'.
-
- You could incorporate a copy of your current usage stats into a email
- message in Pine, by simply inserting a file named /tnos/stats/usage/general.
-
- * Add capability to allow use of OS commands
-
- This WILL be limited to Unix version.
-
- * FTP permissions improved
-
- The new UNIX-like dir display needs a little more work with the permissions
- portion of the display...
-
- * Add in UNIX permissions checking to FTP server
-
- This could cause problems with restricted files not being restricted.
-
- * Add better support for PBBS<->Internet mail address translation
-
- The 'translate' file and improved handling of aliases is a START, but more
- work needs to be done here. Maybe a 'translate.out' file...
-
- * Still better handling of AUTO/LOCAL ax25 routes
-
- Improvement by making an ax25 route entry part of the connection block,
- using this unique AUTO route for this connection only.
-
- * Support (optimization) for ncurses 1.9.x for performance
-
- * Color support output to Unix console
-
- The various color commands don't work with the Unix kernel and curses.
- Annoying, but just possible unexpected output. No crashes.
-
- * Consider altering import code to prevent holding imported messages
-
- Only bypass user permissions checking, not bad word check holding.
-
- * Consider providing a ROSE whitepages server
-
- * Consider providing separate SMTP/BBS rewrite files
-